/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControleAcademico.Model.Dao;

import ControleAcademico.Model.Pojo.Disciplina;
import java.io.IOException;
import java.util.*; 
/**
 *
 * @author arthur
 * @author renan
 * @author tais
 * @author vinicius
 */
public class DisciplinaDaoImp implements DisciplinaDao{
    
    // Atributos
    private ArrayList<Disciplina> listaDisciplinas;
    
    // Metodos
    public DisciplinaDaoImp() {
        this.listaDisciplinas = new ArrayList<Disciplina>();
    }

    
    @Override
    public void adicionar (Disciplina disciplina) throws IOException{
        
        if(!(this.listaDisciplinas.contains(disciplina))){
            this.listaDisciplinas.add(disciplina);
        }
        else {
            throw new IOException();
        }
        
    }
    
    
    @Override
    public void remover (Disciplina disciplina){
        this.listaDisciplinas.remove(disciplina);
    }
    
    
    @Override
    public ArrayList<Disciplina> obterLista() {
        
        ArrayList<Disciplina> copiaLista = new ArrayList<Disciplina>();
        
        int index = 0;
        for(Disciplina a: this.listaDisciplinas){
            copiaLista.add(this.listaDisciplinas.get(index));
            index++;
        }
        return copiaLista;
    }
    
    
    @Override
    public Disciplina buscar (int id) throws IOException{
        
        int index = 0;
        boolean encontrou = false;
        for(Disciplina d : listaDisciplinas) {
            if(d.getId() - id == 0) {
                encontrou = true;
                break;
            }
            index++;
        }
        if (encontrou == true) {
            return listaDisciplinas.get(index);
        } else {
            throw new IOException();
        }
    }
    
}
